﻿using System;
using System.IO;
using System.Collections.Generic;
using System.Xml.Linq;
using System.Xml;
using System.Xml.Schema;
using System.Xml;

namespace $safeprojectname$
{
    public interface IXmlDocument : IXmlElement
    {
        void AddSchema(Stream stream);
        void AddSchema(string uri);
        XDocument InternalDocument { get; }
        XmlNamespaceManager NamespaceManager { get; }
        List<string> Messages { get; }
        void Open(Stream stream);
        void Open(Stream stream, LoadOptions options);
        void Open(TextReader textReader);
        void Open(TextReader textReader, LoadOptions options);
        void Open(string uri);
        void Open(string uri, LoadOptions options);
        void Open(XmlReader reader);
        void Open(XmlReader reader, LoadOptions options);
        void Parse(string text);
        void Parse(string text, LoadOptions options);
        void ProcessOpen();
        void ProcessSave();
        void Read(XNode node);
        void Save(Stream stream, ValidationEventHandler handler);
        void Save(Stream stream, SaveOptions options, ValidationEventHandler handler);
        void Save(TextWriter textWriter, ValidationEventHandler handler);
        void Save(TextWriter textWriter, SaveOptions options, ValidationEventHandler handler);
        void Save(string fileName, ValidationEventHandler handler);
        void Save(string fileName, SaveOptions options, ValidationEventHandler handler);
        void Save(XmlWriter writer, ValidationEventHandler handler);
        XNamespace ElementNamespace { get; }
        void Reset();
        void AddNamespace(string prefix, string uri);
        void AddElementNamespace(string prefix, string uri);
    }
}
